According to the CAP theorem, also known as Brewer's theorem, a distributed computer system may satisfy any two of the following guarantees at the same time, but not all three:                consistency (all nodes see the same data at the same time);        availability (node failures do not prevent the surviving nodes from continuing to operate);        partition tolerance (nodes on both sides of a partition will continue to operate despite message loss at the partition).        
In a peer-to-peer database replication topology, peers have the same table schema and each table row has a replica on each peer. Data manipulation can occur on any peer and will then be replicated to all other peers. However, conflicts may occur if replicas of the same row are manipulated on different peers at the same time. Resolving such conflicts may be difficult, time consuming and/or involve significant overhead.
Traditional databases use locking protocols or master-slave relationships to keep data synchronized between multiple systems (e.g., on a network of nodes). However, distributed locking protocols require considerable overhead, e.g., a node must send a request for the lock, wait until the lock becomes available, make the modification, release the lock, and distribute the update. Master/slave relationships require complete connectivity between nodes and also generate substantial network traffic.